home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 July / CMCD0704.ISO / Software / Freeware / Comunicatii / htttrack / httrack-3.32-2.exe / {app} / src_win / WinHTTrack / inprogress.cpp < prev    next >
C/C++ Source or Header  |  2004-02-14  |  31KB  |  1,074 lines

  1. // inprogress.cpp : implementation file
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include "Shell.h"
  6. #include "inprogress.h"
  7. #include "about.h"
  8. #include "iplog.h"
  9.  
  10. #include "NewProj.h"
  11. //#include "option.h"
  12.  
  13. /* Externe C */
  14. extern "C" {
  15.   #include "HTTrackInterface.h"
  16.   #include "htsbase.h"
  17.   #include "htscore.h"
  18. }
  19.  
  20. #include "Wid1.h"
  21. #include "EasyDropTarget.h"
  22.  
  23. #include "InfoUrl.h"
  24.  
  25. extern CNewProj* dialog0;
  26. extern CMainTab* maintab;
  27.  
  28. /*
  29. extern int INPROGRESS_LOCKED;
  30. */
  31. extern int termine_requested;
  32. extern int termine;
  33. extern int soft_term_requested;
  34. /*
  35. extern int INPROGRESS_LOCKED;
  36. extern int INREFRESH_LOCKED;
  37. */
  38. extern HICON httrack_icon;
  39. //extern int fexist(char*);
  40. //extern char* fconcat(char*,char*);
  41. //extern char choixdeb[3];
  42. // PATCH-->
  43. extern int termine;
  44.  
  45. // Helper
  46. extern LaunchHelp* HtsHelper;
  47.  
  48. // InfoUrl
  49. extern CInfoUrl* _Cinprogress_inst;
  50.  
  51. #ifdef _DEBUG
  52. #define new DEBUG_NEW
  53. #undef THIS_FILE
  54. static char THIS_FILE[] = __FILE__;
  55. #endif
  56.  
  57. // Refresh
  58. //extern int INFILLMEM_LOCKED;     // refresh mΘmoire en cours
  59. extern InpInfo SInfo;
  60. int inprogress_refresh();
  61.  
  62. // this app
  63. #include "Winhttrack.h"
  64. extern CWinHTTrackApp* this_app;
  65.  
  66.  
  67. // objet
  68. extern Cinprogress* inprogress;
  69.  
  70.  
  71. /* pour la fin */
  72. #include "DialogContainer.h"
  73. #include "splitter.h"
  74. extern CSplitterFrame* this_CSplitterFrame;
  75. #include "infoend.h"
  76. extern Cinfoend* this_Cinfoend;
  77.  
  78. /* Main WizTab frame */
  79. #include "WizTab.h"
  80. extern CWizTab* this_CWizTab;
  81. extern CWizTab* this_intCWizTab;
  82.  
  83. // Pour la fin
  84. char end_mirror_msg[8192]="";
  85.  
  86. extern t_StatsBuffer StatsBuffer[NStatsBuffer];
  87.  
  88.  
  89. /////////////////////////////////////////////////////////////////////////////
  90. // Cinprogress dialog
  91. IMPLEMENT_DYNCREATE(Cinprogress, CPropertyPage)
  92.  
  93.  
  94. Cinprogress::Cinprogress()
  95.     : CPropertyPage(Cinprogress::IDD)
  96. {
  97.   timer=0;
  98.   //{{AFX_DATA_INIT(Cinprogress)
  99.     m_inphide = FALSE;
  100.     //}}AFX_DATA_INIT
  101. }
  102.  
  103. void Cinprogress::DoDataExchange(CDataExchange* pDX)
  104. {
  105.     CPropertyPage::DoDataExchange(pDX);
  106.     //{{AFX_DATA_MAP(Cinprogress)
  107.     DDX_Control(pDX, IDC_nn9, m_nn9);
  108.     DDX_Control(pDX, IDC_nn8, m_nn8);
  109.     DDX_Control(pDX, IDC_nn7, m_nn7);
  110.     DDX_Control(pDX, IDC_nn6, m_nn6);
  111.     DDX_Control(pDX, IDC_nn5, m_nn5);
  112.     DDX_Control(pDX, IDC_nn4, m_nn4);
  113.     DDX_Control(pDX, IDC_nn3, m_nn3);
  114.     DDX_Control(pDX, IDC_nn2, m_nn2);
  115.     DDX_Control(pDX, IDC_nn13, m_nn13);
  116.     DDX_Control(pDX, IDC_nn12, m_nn12);
  117.     DDX_Control(pDX, IDC_nn11, m_nn11);
  118.     DDX_Control(pDX, IDC_nn10, m_nn10);
  119.     DDX_Control(pDX, IDC_nn1, m_nn1);
  120.     DDX_Control(pDX, IDC_nn0, m_nn0);
  121.     DDX_Control(pDX, IDC_nm13, m_nm13);
  122.     DDX_Control(pDX, IDC_nm12, m_nm12);
  123.     DDX_Control(pDX, IDC_nm11, m_nm11);
  124.     DDX_Control(pDX, IDC_nm10, m_nm10);
  125.     DDX_Control(pDX, IDC_nm9, m_nm9);
  126.     DDX_Control(pDX, IDC_nm8, m_nm8);
  127.     DDX_Control(pDX, IDC_nm7, m_nm7);
  128.     DDX_Control(pDX, IDC_nm6, m_nm6);
  129.     DDX_Control(pDX, IDC_nm5, m_nm5);
  130.     DDX_Control(pDX, IDC_nm4, m_nm4);
  131.     DDX_Control(pDX, IDC_nm3, m_nm3);
  132.     DDX_Control(pDX, IDC_nm2, m_nm2);
  133.     DDX_Control(pDX, IDC_nm1, m_nm1);
  134.     DDX_Control(pDX, IDC_nm0, m_nm0);
  135.     DDX_Control(pDX, IDC_st13, m_st13);
  136.     DDX_Control(pDX, IDC_st12, m_st12);
  137.     DDX_Control(pDX, IDC_st11, m_st11);
  138.     DDX_Control(pDX, IDC_st10, m_st10);
  139.     DDX_Control(pDX, IDC_st9, m_st9);
  140.     DDX_Control(pDX, IDC_st8, m_st8);
  141.     DDX_Control(pDX, IDC_st7, m_st7);
  142.     DDX_Control(pDX, IDC_st6, m_st6);
  143.     DDX_Control(pDX, IDC_st5, m_st5);
  144.     DDX_Control(pDX, IDC_st4, m_st4);
  145.     DDX_Control(pDX, IDC_st3, m_st3);
  146.     DDX_Control(pDX, IDC_st2, m_st2);
  147.     DDX_Control(pDX, IDC_st1, m_st1);
  148.     DDX_Control(pDX, IDC_st0, m_st0);
  149.     DDX_Control(pDX, IDC_sk0, m_sk0);
  150.     DDX_Control(pDX, IDC_sk1, m_sk1);
  151.     DDX_Control(pDX, IDC_sk2, m_sk2);
  152.     DDX_Control(pDX, IDC_sk3, m_sk3);
  153.     DDX_Control(pDX, IDC_sk4, m_sk4);
  154.     DDX_Control(pDX, IDC_sk5, m_sk5);
  155.     DDX_Control(pDX, IDC_sk6, m_sk6);
  156.     DDX_Control(pDX, IDC_sk7, m_sk7);
  157.     DDX_Control(pDX, IDC_sk8, m_sk8);
  158.     DDX_Control(pDX, IDC_sk9, m_sk9);
  159.     DDX_Control(pDX, IDC_sk10, m_sk10);
  160.     DDX_Control(pDX, IDC_sk11, m_sk11);
  161.     DDX_Control(pDX, IDC_sk12, m_sk12);
  162.     DDX_Control(pDX, IDC_sk13, m_sk13);
  163.     DDX_Control(pDX, IDC_sl0, m_sl0);
  164.     DDX_Control(pDX, IDC_sl1, m_sl1);
  165.     DDX_Control(pDX, IDC_sl2, m_sl2);
  166.     DDX_Control(pDX, IDC_sl3, m_sl3);
  167.     DDX_Control(pDX, IDC_sl4, m_sl4);
  168.     DDX_Control(pDX, IDC_sl5, m_sl5);
  169.     DDX_Control(pDX, IDC_sl6, m_sl6);
  170.     DDX_Control(pDX, IDC_sl7, m_sl7);
  171.     DDX_Control(pDX, IDC_sl8, m_sl8);
  172.     DDX_Control(pDX, IDC_sl9, m_sl9);
  173.     DDX_Control(pDX, IDC_sl10, m_sl10);
  174.     DDX_Control(pDX, IDC_sl11, m_sl11);
  175.     DDX_Control(pDX, IDC_sl12, m_sl12);
  176.     DDX_Control(pDX, IDC_sl13, m_sl13);
  177.     DDX_Check(pDX, IDC_inphide, m_inphide);
  178.     //}}AFX_DATA_MAP
  179. }
  180.  
  181. //const UINT wm_IcnRest = RegisterWindowMessage( FINDMSGSTRING );
  182. #define wm_CEasyDropTargetCallback (WM_USER + 2)
  183. #define wm_Timer (WM_USER + 3)
  184. #define wm_MirrorFinished (WM_USER + 4)
  185. BEGIN_MESSAGE_MAP(Cinprogress, CPropertyPage)
  186.     //{{AFX_MSG_MAP(Cinprogress)
  187.     ON_WM_CLOSE()
  188.     ON_BN_CLICKED(IDC_sk0, Onsk0)
  189.     ON_BN_CLICKED(IDC_sk1, Onsk1)
  190.     ON_BN_CLICKED(IDC_sk2, Onsk2)
  191.     ON_BN_CLICKED(IDC_sk3, Onsk3)
  192.     ON_BN_CLICKED(IDC_sk4, Onsk4)
  193.     ON_BN_CLICKED(IDC_sk5, Onsk5)
  194.     ON_BN_CLICKED(IDC_sk6, Onsk6)
  195.     ON_BN_CLICKED(IDC_sk7, Onsk7)
  196.     ON_BN_CLICKED(IDC_sk8, Onsk8)
  197.     ON_BN_CLICKED(IDC_sk9, Onsk9)
  198.     ON_BN_CLICKED(IDCANCEL, OnEscape)
  199.     ON_BN_CLICKED(IDC_ipabout, Onipabout)
  200.     ON_WM_DESTROY()
  201.     ON_WM_HELPINFO()
  202.     ON_BN_CLICKED(IDC_sk10, Onsk10)
  203.     ON_BN_CLICKED(IDC_sk11, Onsk11)
  204.     ON_BN_CLICKED(IDC_sk12, Onsk12)
  205.     ON_BN_CLICKED(IDC_sk13, Onsk13)
  206.     ON_WM_CREATE()
  207.     ON_BN_CLICKED(IDC_nm0, Onnm0)
  208.     ON_BN_CLICKED(IDC_nm1, Onnm1)
  209.     ON_BN_CLICKED(IDC_nm2, Onnm2)
  210.     ON_BN_CLICKED(IDC_nm3, Onnm3)
  211.     ON_BN_CLICKED(IDC_nm4, Onnm4)
  212.     ON_BN_CLICKED(IDC_nm5, Onnm5)
  213.     ON_BN_CLICKED(IDC_nm6, Onnm6)
  214.     ON_BN_CLICKED(IDC_nm7, Onnm7)
  215.     ON_BN_CLICKED(IDC_nm8, Onnm8)
  216.     ON_BN_CLICKED(IDC_nm9, Onnm9)
  217.     ON_BN_CLICKED(IDC_nm10, Onnm10)
  218.     ON_BN_CLICKED(IDC_nm11, Onnm11)
  219.     ON_BN_CLICKED(IDC_nm12, Onnm12)
  220.     ON_BN_CLICKED(IDC_nm13, Onnm13)
  221.     ON_BN_CLICKED(IDC_nn0, Onnm0)
  222.     ON_BN_CLICKED(IDC_nn1, Onnm1)
  223.     ON_BN_CLICKED(IDC_nn2, Onnm2)
  224.     ON_BN_CLICKED(IDC_nn3, Onnm3)
  225.     ON_BN_CLICKED(IDC_nn4, Onnm4)
  226.     ON_BN_CLICKED(IDC_nn5, Onnm5)
  227.     ON_BN_CLICKED(IDC_nn6, Onnm6)
  228.     ON_BN_CLICKED(IDC_nn7, Onnm7)
  229.     ON_BN_CLICKED(IDC_nn8, Onnm8)
  230.     ON_BN_CLICKED(IDC_nn9, Onnm9)
  231.     ON_BN_CLICKED(IDC_nn10, Onnm10)
  232.     ON_BN_CLICKED(IDC_nn11, Onnm11)
  233.     ON_BN_CLICKED(IDC_nn12, Onnm12)
  234.     ON_BN_CLICKED(IDC_nn13, Onnm13)
  235.   ON_BN_CLICKED(IDC_st0, Onst0)
  236.     ON_BN_CLICKED(IDC_st1, Onst1)
  237.     ON_BN_CLICKED(IDC_st2, Onst2)
  238.     ON_BN_CLICKED(IDC_st3, Onst3)
  239.     ON_BN_CLICKED(IDC_st4, Onst4)
  240.     ON_BN_CLICKED(IDC_st5, Onst5)
  241.     ON_BN_CLICKED(IDC_st6, Onst6)
  242.     ON_BN_CLICKED(IDC_st7, Onst7)
  243.     ON_BN_CLICKED(IDC_st8, Onst8)
  244.     ON_BN_CLICKED(IDC_st9, Onst9)
  245.     ON_BN_CLICKED(IDC_st10, Onst10)
  246.     ON_BN_CLICKED(IDC_st11, Onst11)
  247.     ON_BN_CLICKED(IDC_st12, Onst12)
  248.     ON_BN_CLICKED(IDC_st13, Onst13)
  249.     ON_WM_TIMER()
  250.     ON_BN_CLICKED(IDC_inphide, Oninphide)
  251.     //}}AFX_MSG_MAP
  252.   ON_MESSAGE( wm_CEasyDropTargetCallback, DragDropText)
  253.   ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  254.   ON_BN_CLICKED(ID_ABOUT,Onipabout)
  255.   ON_BN_CLICKED(ID_FILE_EXIT,OnStopall)
  256.   ON_BN_CLICKED(ID_LOG_VIEWLOG,OniplogLog)
  257.   ON_BN_CLICKED(ID_LOG_VIEWERRORLOG,OniplogErr)
  258.   ON_BN_CLICKED(ID_LOG_VIEWTRANSFERS,OnViewTransfers)
  259.   ON_BN_CLICKED(ID_FILE_PAUSE,OnPause)
  260.   ON_BN_CLICKED(ID_OPTIONS_MODIFY,OnModifyOpt)
  261.   ON_COMMAND(ID_HELP_FINDER,OnHelpInfo2)
  262.   ON_COMMAND(ID_HELP,OnHelpInfo2)
  263.     ON_COMMAND(ID_DEFAULT_HELP,OnHelpInfo2)
  264.   // Fin du miroir
  265.   ON_MESSAGE( wm_MirrorFinished, OnEndMirror)
  266.   END_MESSAGE_MAP()
  267. //ON_REGISTERED_MESSAGE( wm_IcnRest, IconRestore )
  268. /////////////////////////////////////////////////////////////////////////////
  269. // Cinprogress message handlers
  270.  
  271. void Cinprogress::OnClose() 
  272. {
  273.   OnStopall();
  274. }
  275.  
  276. void Cinprogress::Onsk0()  {
  277.   if (hts_is_parsing(-1)) {  // parsing
  278.     if (hts_is_testing())
  279.       hts_cancel_test();     // cancel test
  280.     /*else*/
  281.     hts_cancel_parsing();  // cancel parsing
  282.   } else
  283.     StatsBuffer_cancel(0);
  284. }
  285. void Cinprogress::Onsk1()  {
  286.   StatsBuffer_cancel(1);
  287. }
  288. void Cinprogress::Onsk2()  {
  289.   StatsBuffer_cancel(2);
  290. }
  291. void Cinprogress::Onsk3()  {
  292.   StatsBuffer_cancel(3);
  293. }
  294. void Cinprogress::Onsk4()  {
  295.   StatsBuffer_cancel(4);
  296. }
  297. void Cinprogress::Onsk5()  {
  298.   StatsBuffer_cancel(5);
  299. }
  300. void Cinprogress::Onsk6()  {
  301.   StatsBuffer_cancel(6);
  302. }
  303. void Cinprogress::Onsk7()  {
  304.   StatsBuffer_cancel(7);
  305. }
  306. void Cinprogress::Onsk8()  {
  307.   StatsBuffer_cancel(8);
  308. }
  309. void Cinprogress::Onsk9()  {
  310.   StatsBuffer_cancel(9);
  311. }
  312. void Cinprogress::Onsk10()  {
  313.   StatsBuffer_cancel(10);
  314. }
  315. void Cinprogress::Onsk11()  {
  316.   StatsBuffer_cancel(11);
  317. }
  318. void Cinprogress::Onsk12()  {
  319.   StatsBuffer_cancel(12);
  320. }
  321. void Cinprogress::Onsk13()  {
  322.   StatsBuffer_cancel(13);
  323. }
  324.  
  325.  
  326. // Capture des static
  327. void Cinprogress::Onnm0()  { StatsBuffer_info(0); }
  328. void Cinprogress::Onnm1()  { StatsBuffer_info(1); }
  329. void Cinprogress::Onnm2()  { StatsBuffer_info(2); }
  330. void Cinprogress::Onnm3()  { StatsBuffer_info(3); }
  331. void Cinprogress::Onnm4()  { StatsBuffer_info(4); }
  332. void Cinprogress::Onnm5()  { StatsBuffer_info(5); }
  333. void Cinprogress::Onnm6()  { StatsBuffer_info(6); }
  334. void Cinprogress::Onnm7()  { StatsBuffer_info(7); }
  335. void Cinprogress::Onnm8()  { StatsBuffer_info(8); }
  336. void Cinprogress::Onnm9()  { StatsBuffer_info(9); }
  337. void Cinprogress::Onnm10() { StatsBuffer_info(10); }
  338. void Cinprogress::Onnm11() { StatsBuffer_info(11); }
  339. void Cinprogress::Onnm12() { StatsBuffer_info(12); }
  340. void Cinprogress::Onnm13() { StatsBuffer_info(13); }
  341.  
  342. void Cinprogress::Onst0()  { StatsBuffer_info(0); }
  343. void Cinprogress::Onst1()  { StatsBuffer_info(1); }
  344. void Cinprogress::Onst2()  { StatsBuffer_info(2); }
  345. void Cinprogress::Onst3()  { StatsBuffer_info(3); }
  346. void Cinprogress::Onst4()  { StatsBuffer_info(4); }
  347. void Cinprogress::Onst5()  { StatsBuffer_info(5); }
  348. void Cinprogress::Onst6()  { StatsBuffer_info(6); }
  349. void Cinprogress::Onst7()  { StatsBuffer_info(7); }
  350. void Cinprogress::Onst8()  { StatsBuffer_info(8); }
  351. void Cinprogress::Onst9()  { StatsBuffer_info(9); }
  352. void Cinprogress::Onst10() { StatsBuffer_info(10); }
  353. void Cinprogress::Onst11() { StatsBuffer_info(11); }
  354. void Cinprogress::Onst12() { StatsBuffer_info(12); }
  355. void Cinprogress::Onst13() { StatsBuffer_info(13); }
  356.  
  357. // touche escape
  358. void Cinprogress::OnEscape() { 
  359.   OnStopall();
  360. }
  361.  
  362. void Cinprogress::OnStopall() 
  363. {
  364.   this_CSplitterFrame->CheckRestore();
  365.   if (AfxMessageBox(
  366.     LANG(LANG_H1 /*"Stop WinHTTrack?",
  367.            "Stopper WinHTTrack?"*/)
  368.     ,MB_OKCANCEL+MB_ICONQUESTION)==IDOK) {
  369.     hts_setpause(0);
  370.     if (soft_term_requested)
  371.       termine_requested=1;
  372.     else {
  373.       soft_term_requested=1;
  374.       hts_request_stop(0);
  375.     }
  376.   }
  377. }
  378.  
  379. void Cinprogress::Onipabout() 
  380. {
  381.   Cabout about;
  382.   about.DoModal();
  383. }
  384.  
  385. void Cinprogress::OnDestroy() 
  386. {
  387.   //((CWnd*)this)->m_pCtrlCont->OnUIActivate(NULL);
  388.   WHTT_LOCK();
  389.   termine_requested=1;    // quit!
  390.   WHTT_UNLOCK();
  391.   StopTimer();
  392.   if (BackAffLog)
  393.   if (form.m_hWnd)
  394.     form.EndDialog(IDOK);       // terminer!
  395.   this_CSplitterFrame->CheckRestore();
  396.   //Sleep(150);             // Θvite les problΦmes d'accΦs α m_hWnd juste avant le destroy
  397.   CPropertyPage::OnDestroy();
  398. }
  399.  
  400. BOOL Cinprogress::OnInitDialog() 
  401. {
  402.   m_inphide=TRUE;
  403.   UpdateData(false);      // force to call DoDataExchange
  404.   inprogress=this;
  405.  
  406.   memset(&SInfo, 0, sizeof(SInfo));
  407.  
  408.   BackAffLog=NULL;
  409.   strcpybuff(pathlog,"");
  410.  
  411.     //CPropertyPage::OnInitDialog();
  412.   EnableToolTips(true);     // TOOL TIPS
  413.  
  414.   // initialisation des champs pour les redraws en boucle
  415.   element[0][0]=&m_st0;
  416.   element[0][1]=&m_st1;
  417.   element[0][2]=&m_st2;
  418.   element[0][3]=&m_st3;
  419.   element[0][4]=&m_st4;
  420.   element[0][5]=&m_st5;
  421.   element[0][6]=&m_st6;
  422.   element[0][7]=&m_st7;
  423.   element[0][8]=&m_st8;
  424.   element[0][9]=&m_st9;
  425.   element[0][10]=&m_st10;
  426.   element[0][11]=&m_st11;
  427.   element[0][12]=&m_st12;
  428.   element[0][13]=&m_st13;
  429.  
  430.   element[1][0]=&m_nm0;
  431.   element[1][1]=&m_nm1;
  432.   element[1][2]=&m_nm2;
  433.   element[1][3]=&m_nm3;
  434.   element[1][4]=&m_nm4;
  435.   element[1][5]=&m_nm5;
  436.   element[1][6]=&m_nm6;
  437.   element[1][7]=&m_nm7;
  438.   element[1][8]=&m_nm8;
  439.   element[1][9]=&m_nm9;
  440.   element[1][10]=&m_nm10;
  441.   element[1][11]=&m_nm11;
  442.   element[1][12]=&m_nm12;
  443.   element[1][13]=&m_nm13;
  444.  
  445.   // rajoutΘ
  446.   element[4][0]=&m_nn0;
  447.   element[4][1]=&m_nn1;
  448.   element[4][2]=&m_nn2;
  449.   element[4][3]=&m_nn3;
  450.   element[4][4]=&m_nn4;
  451.   element[4][5]=&m_nn5;
  452.   element[4][6]=&m_nn6;
  453.   element[4][7]=&m_nn7;
  454.   element[4][8]=&m_nn8;
  455.   element[4][9]=&m_nn9;
  456.   element[4][10]=&m_nn10;
  457.   element[4][11]=&m_nn11;
  458.   element[4][12]=&m_nn12;
  459.   element[4][13]=&m_nn13;
  460.  
  461.   element[2][0]=&m_sl0;
  462.   element[2][1]=&m_sl1;
  463.   element[2][2]=&m_sl2;
  464.   element[2][3]=&m_sl3;
  465.   element[2][4]=&m_sl4;
  466.   element[2][5]=&m_sl5;
  467.   element[2][6]=&m_sl6;
  468.   element[2][7]=&m_sl7;
  469.   element[2][8]=&m_sl8;
  470.   element[2][9]=&m_sl9;
  471.   element[2][10]=&m_sl10;
  472.   element[2][11]=&m_sl11;
  473.   element[2][12]=&m_sl12;
  474.   element[2][13]=&m_sl13;
  475.  
  476.   element[3][0]=&m_sk0;
  477.   element[3][1]=&m_sk1;
  478.   element[3][2]=&m_sk2;
  479.   element[3][3]=&m_sk3;
  480.   element[3][4]=&m_sk4;
  481.   element[3][5]=&m_sk5;
  482.   element[3][6]=&m_sk6;
  483.   element[3][7]=&m_sk7;
  484.   element[3][8]=&m_sk8;
  485.   element[3][9]=&m_sk9;
  486.   element[3][10]=&m_sk10;
  487.   element[3][11]=&m_sk11;
  488.   element[3][12]=&m_sk12;
  489.   element[3][13]=&m_sk13;
  490.  
  491.   /* Init checkbox */
  492.   CMenu* m;
  493.   if (m = AfxGetApp()->GetMainWnd()->GetMenu()) {
  494.     m->CheckMenuItem(ID_FILE_PAUSE,MF_UNCHECKED);
  495.   }
  496.  
  497.   // Patcher l'interface pour les Franτais ;-)
  498.   if (LANG_T(-1)) {    // Patcher en franτais
  499.     //SetDlgItemTextCP(this, ,"");
  500.     SetDlgItemTextCP(this, IDC_STATIC_bytes,LANG(LANG_H8) /*"Octets sauvΘs:"*/);
  501.     SetDlgItemTextCP(this, IDC_STATIC_scanned,LANG(LANG_H9) /*"Liens parcourus:"*/);
  502.     SetDlgItemTextCP(this, IDC_STATIC_time,LANG(LANG_H10) /*"Temps:"*/);
  503.     SetDlgItemTextCP(this, IDC_STATIC_sockets,LANG(LANG_H11) /*"Connexions:"*/);
  504.     SetDlgItemTextCP(this, IDC_inphide,LANG(LANG_H12) /*"En cours:"*/);
  505.     SetDlgItemTextCP(this, IDC_STATIC_informations,LANG_H16);   
  506.     SetDlgItemTextCP(this, IDC_STATIC_written,LANG_H17);   
  507.     SetDlgItemTextCP(this, IDC_STATIC_updated,LANG_H18);   
  508.     SetDlgItemTextCP(this, IDC_STATIC_errors,LANG_H19);    
  509.     SetDlgItemTextCP(this, IDC_STATIC_inprog,LANG_H20);    
  510.     //SetDlgItemTextCP(this, IDC_hide,LANG(LANG_H13) /*"Cacher"*/);
  511.     SetDlgItemTextCP(this, IDC_STATIC_trate,LANG(LANG_H14) /*"Taux transfert"*/);
  512.     for(int i=0;i<NStatsBuffer;i++)
  513.       SetWindowTextCP(element[3][i], LANG(LANG_H15));
  514.   }
  515.  
  516.   /*
  517.   {
  518.     LOGFONT lf;
  519.     if (element[0][0]->GetFont()->GetLogFont(&lf)) {
  520.       CFont* fnt = new CFont();
  521.       if (fnt->CreateFont(lf.lfHeight,0,0,0,FW_DONTCARE,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,"Fixedsys")) {
  522.         int i;
  523.         for (i=0;i<NStatsBuffer; i++) {
  524.           element[0][i]->SetFont(fnt,true);
  525.           element[1][i]->SetFont(fnt,true);
  526.         }
  527.       }
  528.     }
  529.   }
  530.   */
  531.  
  532.   SetIcon(httrack_icon,false);
  533.   SetIcon(httrack_icon,true);  
  534.  
  535.   if (ShellOptions != NULL && ShellOptions->choixdeb[0] == '!')
  536.     Oniplog(0);           // ouvrir log
  537.  
  538.   // Lancer timer!
  539.   StartTimer();
  540.  
  541.     return TRUE;  // return TRUE unless you set the focus to a control
  542.                   // EXCEPTION: OCX Property Pages should return FALSE
  543. }
  544.  
  545. void Cinprogress::StartTimer() {
  546.   if (!timer) {
  547.     timer=SetTimer(WM_TIMER,HTS_SLEEP_WIN,NULL);
  548.   }
  549. }
  550. void Cinprogress::StopTimer() {
  551.   if (timer) {
  552.     KillTimer(timer);
  553.     timer=0;
  554.   }
  555. }
  556.  
  557. UINT AffLog( LPVOID pP ) {
  558.   Cinprogress* inp = (Cinprogress*) pP;
  559.   if (inp != NULL) {
  560.     inp->form.m_iplog=(CString) "No log report";
  561.     inp->form.DoModal();
  562.     inp->BackAffLog = NULL;
  563.   }
  564.   return 0;    // thread completed successfully
  565. }
  566.  
  567. // log pour fichiers d'erreur et de log
  568. void Cinprogress::OniplogLog() {
  569.   Oniplog(0);
  570. }
  571. void Cinprogress::OniplogErr() {
  572.   Oniplog(1);
  573. }
  574.  
  575. void Cinprogress::Oniplog(int mode)  {
  576.   if (!BackAffLog) {  // pas encore lancΘ
  577.     strcpybuff(pathlog,dialog0->GetPath());
  578.     if (strlen(pathlog)>0)
  579.     if ((pathlog[strlen(pathlog)-1]!='/') && (pathlog[strlen(pathlog)-1]!='\\'))
  580.       strcatbuff(pathlog,"/");
  581.     // fichier log existe ou on est tΘlΘcommandΘ par un !
  582.     if ( (fexist(fconcat(pathlog,"hts-err.txt"))) || (fexist(fconcat(pathlog,"hts-log.txt"))) || (ShellOptions != NULL && ShellOptions->choixdeb[0]=='!') ) {
  583.       if (mode)
  584.         form.type_log=0;
  585.       else
  586.         form.type_log=1;
  587.       strcpybuff(form.pathlog,pathlog);
  588.       BackAffLog = AfxBeginThread(AffLog,this);
  589.     } else {
  590.       char s[1024];
  591.       sprintf(s,LANG(LANG_H2 /*"No log files in %s!","Aucun fichier d'audit dans %s!"*/),pathlog);
  592.       AfxMessageBox(s,MB_OK+MB_ICONEXCLAMATION);
  593.     }
  594.   }
  595. }
  596.  
  597. void Cinprogress::OnViewTransfers() 
  598. {
  599.   StatsBuffer_info(0);
  600. }
  601.  
  602. void Cinprogress::OnPause() 
  603. {
  604.   int m;
  605.   if (!hts_setpause(-1))
  606.     m=AfxMessageBox(LANG(LANG_H3 /*"Pause Transfer?","Placer le transfert sur pause?"*/),MB_OKCANCEL+MB_ICONQUESTION);
  607.   else
  608.     m=IDOK;
  609.   if (m==IDOK) {
  610.     hts_setpause(!hts_setpause(-1));
  611.     CMenu* m;
  612.     if (m = AfxGetApp()->GetMainWnd()->GetMenu()) {
  613.       if (hts_setpause(-1))
  614.         m->CheckMenuItem(ID_FILE_PAUSE,MF_CHECKED);
  615.       else
  616.         m->CheckMenuItem(ID_FILE_PAUSE,MF_UNCHECKED);
  617.     }
  618.   }
  619. }
  620.  
  621. // modif options
  622. void Cinprogress::OnModifyOpt() 
  623. {
  624.   static httrackp opt;
  625.   //
  626.   maintab->m_option1.modify=
  627.     maintab->m_option2.modify=
  628.     maintab->m_option3.modify=
  629.     maintab->m_option7.modify=
  630.     maintab->m_option8.modify=
  631.     maintab->m_option9.modify=
  632.     maintab->m_option11.modify=
  633.     maintab->m_option10.modify=1;    // mode modification
  634.   if (maintab->DoModal() == IDOK) {
  635.     int n;
  636.     LLint ln;
  637.  
  638.     // dΘvalider champs (non modifiΘs)
  639.     opt.maxsite = -1;
  640.     opt.maxfile_nonhtml = -1;
  641.     opt.maxfile_html = -1;
  642.     opt.maxsoc = -1;
  643.     opt.nearlink = -1;
  644.     opt.timeout = -1;
  645.     opt.rateout = -1;
  646.     opt.maxtime = -1;
  647.     opt.maxrate = -1;
  648.     strcpybuff(opt.user_agent , "");
  649.     opt.retry = -1;
  650.     opt.hostcontrol = -1;
  651.     opt.errpage = -1;
  652.     opt.travel = -1;
  653.     opt.external = -1;
  654.     opt.delete_old=-1;
  655.     opt.parseall=-1;
  656.     opt.delete_old=-1;
  657.  
  658.     opt.travel=0;         // NOTE: NE SERA PRIS EN COMPTE QUE LE BIT 8
  659.     if(maintab->m_option1.m_testall)
  660.       opt.travel|=256;     
  661.  
  662.     if(maintab->m_option1.m_parseall)
  663.       opt.parseall=1;     
  664.     else
  665.       opt.parseall=0;     
  666.  
  667.     // near link,err page
  668.     if (maintab->m_option1.m_link)
  669.       opt.nearlink=1;
  670.     else
  671.       opt.nearlink=0;
  672.  
  673.     if (maintab->m_option2.m_errpage)
  674.       opt.errpage=1;
  675.     else
  676.       opt.errpage=0;
  677.  
  678.     if (maintab->m_option2.m_external)
  679.       opt.external=1;
  680.     else
  681.       opt.external=0;
  682.  
  683.     if (maintab->m_option2.m_nopurge)
  684.       opt.delete_old=1;
  685.     else
  686.       opt.delete_old=0;
  687.  
  688.  
  689.     // host control
  690.     {
  691.       int a=0;
  692.       if (maintab->m_option4.m_remt)
  693.         a+=1;
  694.       if (maintab->m_option4.m_rems)
  695.         a+=2;
  696.       opt.hostcontrol=a;
  697.     }
  698.  
  699.     // sockets
  700.     if (strcmp(maintab->m_option4.m_connexion,"")!=0) {
  701.       if (sscanf(maintab->m_option4.m_connexion,"%d",&n) == 1)
  702.         opt.maxsoc = n;
  703.     } 
  704.  
  705.     // maxfile_nonhtml
  706.     if (strcmp(maintab->m_option5.m_othermax,"")!=0) {
  707.       if (sscanf(maintab->m_option5.m_othermax,LLintP,&ln) == 1)
  708.         opt.maxfile_nonhtml = ln;
  709.     } else
  710.       opt.maxfile_nonhtml = -1;
  711.  
  712.     // maxfile_html
  713.     if (strcmp(maintab->m_option5.m_maxhtml,"")!=0) {
  714.       if (sscanf(maintab->m_option5.m_maxhtml,LLintP,&ln) == 1)
  715.         opt.maxfile_html = ln;
  716.     } else
  717.       opt.maxfile_html = -1;
  718.  
  719.     // maxsite
  720.     if (strcmp(maintab->m_option5.m_sizemax,"")!=0) {
  721.       if (sscanf(maintab->m_option5.m_sizemax,LLintP,&ln) == 1)
  722.         opt.maxsite = ln;
  723.     } else
  724.       opt.maxsite = -1;
  725.  
  726.     // fragment
  727.     if (strcmp(maintab->m_option5.m_pausebytes,"")!=0) {
  728.       if (sscanf(maintab->m_option5.m_pausebytes,LLintP,&ln) == 1)
  729.         opt.fragment = ln;
  730.     } else
  731.       opt.fragment = -1;
  732.  
  733.     // timeout
  734.     if (strcmp(maintab->m_option4.m_timeout,"")!=0) {
  735.       if (sscanf(maintab->m_option4.m_timeout,"%d",&n) == 1)
  736.         opt.timeout = n;
  737.     } else
  738.       opt.timeout = -1;
  739.  
  740.     // rateout
  741.     if (strcmp(maintab->m_option4.m_rate,"")!=0) {
  742.       if (sscanf(maintab->m_option4.m_rate,"%d",&n) == 1)
  743.         opt.rateout = n;
  744.     } else
  745.       opt.rateout = -1;
  746.  
  747.     // maxtime
  748.     if (strcmp(maintab->m_option5.m_maxtime,"")!=0) {
  749.       if (sscanf(maintab->m_option5.m_maxtime,"%d",&n) == 1)
  750.         opt.maxtime = n;
  751.     } else
  752.       opt.maxtime = -1;
  753.  
  754.     // maxrate
  755.     if (strcmp(maintab->m_option5.m_maxrate,"")!=0) {
  756.       if (sscanf(maintab->m_option5.m_maxrate,"%d",&n) == 1)
  757.         opt.maxrate = n;
  758.     } else
  759.       opt.maxrate = -1;
  760.  
  761.     // max. connect
  762.     if (strcmp(maintab->m_option5.m_maxconn,"")!=0) {
  763.       if (sscanf(maintab->m_option5.m_maxconn,"%d",&n) == 1)
  764.         opt.maxconn = n;
  765.     } else
  766.       opt.maxconn = -1;
  767.  
  768.     // retry
  769.     if (strcmp(maintab->m_option4.m_retry,"")!=0) {
  770.       if (sscanf(maintab->m_option4.m_retry,"%d",&n) == 1)
  771.         opt.retry = n;
  772.     } else
  773.       opt.retry = -1;
  774.  
  775.     // user_agent
  776.     if (strcmp(maintab->m_option6.m_user,"")!=0) {
  777.       strcpybuff(opt.user_agent,maintab->m_option6.m_user);
  778.     }
  779.  
  780.     hts_setopt(&opt);
  781.   }
  782.   maintab->m_option1.modify=
  783.     maintab->m_option2.modify=
  784.     maintab->m_option3.modify=
  785.     maintab->m_option7.modify=
  786.     maintab->m_option8.modify=
  787.     maintab->m_option9.modify=
  788.     maintab->m_option11.modify=
  789.     maintab->m_option10.modify=0;
  790. }
  791.  
  792.  
  793.  
  794. // canceller un lien manuellement
  795. void Cinprogress::StatsBuffer_cancel(int id) {
  796.   hts_cancel_file(StatsBuffer[id].url_sav);
  797. }
  798. void Cinprogress::StatsBuffer_info(int id) {
  799.   WHTT_LOCK();
  800.   if ((!termine) && (!termine_requested) && (inprogress->m_hWnd)) {
  801.     if (SInfo.stat_time>0) {
  802.       if (StatsBuffer[id].etat[0]) {
  803.         CInfoUrl box;
  804.         box.id=StatsBuffer[id].back;
  805.         _Cinprogress_inst=&box;
  806.         WHTT_UNLOCK();
  807.         {
  808.           box.DoModal();
  809.           _Cinprogress_inst=NULL;
  810.         }
  811.         return;
  812.       }
  813.     }
  814.   }
  815.   WHTT_UNLOCK();
  816. }
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824. // ------------------------------------------------------------
  825. // TOOL TIPS
  826. //
  827. // ajouter dans le .cpp:
  828. // remplacer les deux Wid1:: par le nom de la classe::
  829. // dans la message map, ajouter
  830. // ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify )
  831. // dans initdialog ajouter
  832. // EnableToolTips(true);     // TOOL TIPS
  833. //
  834. // ajouter dans le .h:
  835. // char* GetTip(int id);
  836. // et en generated message map
  837. // afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
  838. BOOL Cinprogress::OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
  839. {
  840.   TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
  841.   UINT nID =pNMHDR->idFrom;
  842.   if (pTTT->uFlags & TTF_IDISHWND)
  843.   {
  844.     // idFrom is actually the HWND of the tool
  845.     nID = ::GetDlgCtrlID((HWND)nID);
  846.     if(nID)
  847.     {
  848.       char* st=GetTip(nID);
  849.       if (st != "") {
  850.         pTTT->lpszText = st;
  851.         pTTT->hinst = AfxGetResourceHandle();
  852.         return(TRUE);
  853.       }
  854.     }
  855.   }
  856.   return(FALSE);
  857. }
  858. char* Cinprogress::GetTip(int ID)
  859. {
  860.   switch(ID) {
  861.     //case IDC_STOPALL: return LANG(LANG_H4); break; // "Stop the mirror","Stopper le miroir"); break;
  862.     //case IDC_hide:    return LANG(LANG_H5); break; // "Hide this window behind the system tray","Cacher la fenΩtre dans la barre systΦme"); break;
  863.     case IDC_sk0:     return LANG(LANG_H6); break; // "Click to skip a link or interrupt parsing","Clic pour sauter un lien ou interrompre"); break;
  864.     case IDC_sk1: case IDC_sk2: case IDC_sk3: case IDC_sk4:
  865.     case IDC_sk5: case IDC_sk6: case IDC_sk7: case IDC_sk8: case IDC_sk9:
  866.                       return LANG(LANG_H7); break; // "Click to skip a link","Clic pour sauter un lien"); break;
  867.                       //
  868.   }
  869.   return "";
  870. }
  871. // TOOL TIPS
  872. // ------------------------------------------------------------
  873.  
  874.  
  875.  
  876. // Appel aide
  877. void Cinprogress::OnHelpInfo2() {
  878.   (void)OnHelpInfo(NULL);
  879. }
  880.  
  881. BOOL Cinprogress::OnHelpInfo(HELPINFO* dummy) 
  882. {
  883.   //return CPropertyPage::OnHelpInfo(pHelpInfo);
  884.   HtsHelper->Help();
  885.   return true;
  886.   //AfxGetApp()->WinHelp(0,HELP_FINDER);    // Index du fichier Hlp
  887.   //return true;
  888. }
  889.  
  890.  
  891. int Cinprogress::OnCreate(LPCREATESTRUCT lpCreateStruct) 
  892. {
  893.     if (CPropertyPage::OnCreate(lpCreateStruct) == -1)
  894.         return -1;
  895.  
  896.   // Drag&Drop
  897.   drag=new CEasyDropTarget(this);
  898.   if (drag->IsRegistered()) {
  899.     drag->SetTextCallback(wm_CEasyDropTargetCallback);
  900.   }
  901.     
  902.     return 0;
  903. }
  904.  
  905.  
  906. // Message from CEasyDropTarget
  907. LRESULT Cinprogress::DragDropText(WPARAM wParam,LPARAM lParam) {
  908.   if (lParam) {
  909.     CString st=*((CString*) lParam);
  910.     CLIPFORMAT cfFormat=wParam;
  911.     st=Wid1::TextToUrl(st,cfFormat);
  912.     if (st=="")
  913.       AfxMessageBox(LANG(LANG_DIAL11),MB_SYSTEMMODAL);
  914.     else {
  915.       CString aff=LANG(LANG_DIAL12);
  916.       if (AfxMessageBox(aff+st,MB_SYSTEMMODAL|MB_YESNO|MB_ICONQUESTION)==IDYES) {
  917.         int pause=0;
  918.         char** tab=CEasyDropTarget::StringToArray(st);
  919.         hts_addurl(tab);
  920.         if (pause=hts_setpause(-1))
  921.           hts_setpause(0);      // enlever pause
  922.         {
  923.           int i=0;
  924.           while((hts_addurl(NULL)) && (i<100)) {
  925.             Sleep(100);
  926.             i++;
  927.           }
  928.           if (!(i<100)) {
  929.             hts_resetaddurl();
  930.             AfxMessageBox(LANG(LANG_DIAL13));
  931.           }
  932.           hts_setpause(pause);      // remettre pause Θventuelle
  933.         }
  934.         CEasyDropTarget::ReleaseStringToArray(tab);
  935.         tab=NULL;
  936.       }
  937.     }
  938.   }
  939.   return 0;
  940. }
  941.  
  942. // Refresh
  943. void Cinprogress::OnTimer(UINT nIDEvent) 
  944. {
  945.   WHTT_LOCK();
  946.   if (!termine) {
  947.     if (SInfo.refresh) {
  948.       hts_is_parsing(0);        // refresh demandΘ si en mode parsing
  949.       // while(INFILLMEM_LOCKED) Sleep(10);    // attendre au cas o∙
  950.       if (!termine)
  951.         inprogress_refresh();        // on refresh!
  952.     }
  953.     SInfo.ask_refresh=1;
  954.   }
  955.   WHTT_UNLOCK();
  956.   CPropertyPage::OnTimer(nIDEvent);
  957. }
  958.  
  959. BOOL Cinprogress::DestroyWindow() 
  960. {
  961.   StopTimer();
  962.   inprogress=NULL;
  963.   delete drag;
  964.     return CPropertyPage::DestroyWindow();
  965. }
  966.  
  967. // Fin
  968.  
  969. LRESULT Cinprogress::OnEndMirror(WPARAM /* wP*/, LPARAM /*lP*/) {
  970.   //this_CSplitterFrame->SetNewView(0,1,RUNTIME_CLASS(Cinfoend));
  971.  
  972.   // Copie de trans.cpp
  973.   this_CWizTab->ModifyStyle(WS_VISIBLE,0,0);
  974.   this_CWizTab->RedrawWindow();
  975.   //
  976.   //{
  977.   //  CWizTab* tmp;
  978.   //  tmp=this_CWizTab;
  979.   this_CWizTab=this_intCWizTab;
  980.   //  this_CWizTab2=tmp;
  981.   //}
  982.   //
  983.   this_CWizTab->ModifyStyle(0,WS_VISIBLE,0);
  984.   this_CWizTab->ModifyStyle(WS_DISABLED,0,0);
  985.   this_CSplitterFrame->RedrawWindow();
  986.   // Fin de Copie de trans.cpp
  987.  
  988.   this_CWizTab->EndInProgress();
  989.   if (IsWindow(this_Cinfoend->m_hWnd))
  990.     SetDlgItemTextCP(this_Cinfoend, IDC_infoend,end_mirror_msg);
  991.  
  992.   if (hts_is_exiting() == 1) {     /* Interrupted mirror! */
  993.     char pathlog[HTS_URLMAXSIZE*2];
  994.     strcpybuff(pathlog,dialog0->GetPath());
  995.     if (strlen(pathlog)>0) {
  996.       if ((pathlog[strlen(pathlog)-1]!='/') && (pathlog[strlen(pathlog)-1]!='\\'))
  997.         strcatbuff(pathlog,"/");
  998.     }
  999.     // Aborted updated.. restore old cache?!
  1000.     if ( 
  1001.       fexist(fconcat(pathlog,"hts-cache/old.zip"))
  1002.       ||
  1003.       (fexist(fconcat(pathlog,"hts-cache/old.dat"))) && (fexist(fconcat(pathlog,"hts-cache/old.ndx"))) 
  1004.       ) {
  1005.       if (AfxMessageBox(LANG_F22b,MB_YESNO|MB_DEFBUTTON2) == IDYES) {
  1006.         if (fexist(fconcat(pathlog,"hts-cache/old.dat")) && fexist(fconcat(pathlog,"hts-cache/old.ndx"))) {
  1007.           if (remove(fconcat(pathlog,"hts-cache/new.dat"))) {
  1008.             AfxMessageBox(LANG_F24 );
  1009.           }
  1010.           if (remove(fconcat(pathlog,"hts-cache/new.ndx"))) {
  1011.             AfxMessageBox(LANG_F24 );
  1012.           }
  1013.         }
  1014.         if (remove(fconcat(pathlog,"hts-cache/new.lst"))) {
  1015.           AfxMessageBox(LANG_F24 );
  1016.         }
  1017.         if (fexist(fconcat(pathlog,"hts-cache/old.zip"))) {
  1018.           if (remove(fconcat(pathlog,"hts-cache/new.zip"))) {
  1019.             AfxMessageBox(LANG_F24 );
  1020.           }
  1021.         }
  1022.         remove(fconcat(pathlog,"hts-cache/new.txt"));
  1023.         rename(fconcat(pathlog,"hts-cache/old.zip"),fconcat(pathlog,"hts-cache/new.zip"));
  1024.         rename(fconcat(pathlog,"hts-cache/old.dat"),fconcat(pathlog,"hts-cache/new.dat"));
  1025.         rename(fconcat(pathlog,"hts-cache/old.ndx"),fconcat(pathlog,"hts-cache/new.ndx"));
  1026.         rename(fconcat(pathlog,"hts-cache/old.lst"),fconcat(pathlog,"hts-cache/new.lst"));
  1027.         rename(fconcat(pathlog,"hts-cache/old.txt"),fconcat(pathlog,"hts-cache/new.txt"));
  1028.       }
  1029.     }
  1030.   } else if (hts_is_exiting() == 2) {     /* No connection! */
  1031.     AfxMessageBox(LANG_F22c );
  1032.   }
  1033.   return S_OK;
  1034. }
  1035.  
  1036. BOOL Cinprogress::OnQueryCancel( ) {
  1037.   OnStopall();
  1038.   //this_CSplitterFrame->SetNewView(0,1,RUNTIME_CLASS(CDialogContainer));
  1039.   return FALSE;
  1040. }
  1041.  
  1042.  
  1043. void Cinprogress::Oninphide() 
  1044. {
  1045.   int status=IsDlgButtonChecked(IDC_inphide);
  1046.   if (status) {
  1047.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(WS_DISABLED,0);  // disabled
  1048.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(0,WS_VISIBLE);   // not visible
  1049.   } else {
  1050.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(0,WS_DISABLED);  // not disabled
  1051.     GetDlgItem(IDC_STATIC_actions)->ModifyStyle(WS_VISIBLE,0);   // visible
  1052.   }
  1053.   int i;
  1054.   for(i=0;i<NStatsBuffer;i++) {
  1055.     int j;
  1056.     for(j=0;j<5;j++) {
  1057.       if (status) {
  1058.         inprogress->element[j][i]->ModifyStyle(WS_DISABLED,0);  // disabled
  1059.         inprogress->element[j][i]->ModifyStyle(0,WS_VISIBLE);   // not visible
  1060.       } else {
  1061.         inprogress->element[j][i]->ModifyStyle(0,WS_DISABLED);  // not disabled
  1062.         inprogress->element[j][i]->ModifyStyle(WS_VISIBLE,0);   // visible
  1063.       }
  1064.     }
  1065.   }
  1066.   RedrawWindow();
  1067. }
  1068.  
  1069. BOOL Cinprogress::OnSetActive() 
  1070. {
  1071.   WHTT_LOCATION("inprogress");
  1072.     return CPropertyPage::OnSetActive();
  1073. }
  1074.